Introduction of various computing devices in everyday life has been growing and continues to grow exponentially. New form factors (e.g., smart phones, tables, digital TVs, and game consoles), new kinds of sensors (e.g., accelerometers, GPS, and proximity sensors), new low-level networks (e.g., Wi-Fi, Bluetooth, and NFC), and other technological advances are being introduced in the marketplace, as the pace of innovation continues.
These computing devices operate as individual independent nodes, and their ability to interoperate and augment each other is limited to simple, rudimentary modes of cooperation (e.g., send a picture from a smart phone to printer or display it on Digital TV). Interoperability between devices and their applications is predefined by device creators, and often serves narrow purposes.
Generally, computing systems are defined by the functionality or capabilities it can provide. Computing device makers offer basic computing platform operating system (OS) capabilities (e.g. PC, tablet, and smart phone) and open up the platform for independent vendors to extend through application and services. Various applications are able to interoperate, share data, and otherwise augment each other's capabilities. Since the PC era and into the mobile and sensor eras, OS providers have been offering application interoperability application Programming Interfaces (APIs) as part of their core operating systems. Microsoft Windows OLE, Apple OpenDoc, and Android Intents are examples of APIs and protocols provided to independent vendors to allow their applications to interoperate.